package football.haha.com.footballtv;

import android.app.Application;

import com.lzy.okgo.OkGo;
import com.lzy.okgo.cache.CacheEntity;
import com.lzy.okgo.cache.CacheMode;
import com.lzy.okgo.cookie.CookieJarImpl;
import com.lzy.okgo.cookie.store.SPCookieStore;
import com.lzy.okgo.interceptor.HttpLoggingInterceptor;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;

import java.util.logging.Level;

import football.haha.com.footballtv.utils.SystemPropertiesProxy;
import okhttp3.OkHttpClient;

/**
 * Created by oo on 2017/10/10.
 */

public class FootballApplication extends Application {

    public static DisplayImageOptions options;
    public static String userId;

    @Override
    public void onCreate() {
        super.onCreate();
        options = new DisplayImageOptions.Builder()//
                .showImageOnLoading(R.drawable.default_blue)    //设置图片在下载期间显示的图片
                .showImageForEmptyUri(R.drawable.default_blue)  //设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.default_blue)       //设置图片加载/解码过程中错误时候显示的图片
                .cacheInMemory(true)                                //设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)                                  //设置下载的图片是否缓存在SD卡中
                .build();                                           //构建完成


        ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(this);
        ImageLoader.getInstance().init(config);

        OkGo.getInstance().init(this);
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("OkGo");
        //log打印级别，决定了log显示的详细程度
        loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.BODY);
        //log颜色级别，决定了log在控制台显示的颜色
        loggingInterceptor.setColorLevel(Level.WARNING);
        builder.addInterceptor(loggingInterceptor);
        //使用sp保持cookie，如果cookie不过期，则一直有效
        builder.cookieJar(new CookieJarImpl(new SPCookieStore(this)));
        OkGo.getInstance().init(this)                       //必须调用初始化
                .setOkHttpClient(builder.build())               //建议设置OkHttpClient，不设置将使用默认的
                .setCacheMode(CacheMode.NO_CACHE)               //全局统一缓存模式，默认不使用缓存，可以不传
                .setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE)   //全局统一缓存时间，默认永不过期，可以不传
                .setRetryCount(3);


        userId = SystemPropertiesProxy.get(this, "sys.smartcard.id");

    }

    public static DisplayImageOptions getOptions(int defultResId) {
        return new DisplayImageOptions.Builder().cloneFrom(options)
                .showImageOnLoading(defultResId)    //设置图片在下载期间显示的图片
                .showImageForEmptyUri(defultResId)  //设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(defultResId)       //设置图片加载/解码过程中错误时候显示的图片
                .build();
    }

}
